package com.aims.server.dao;

import com.aims.server.entity.ExtAccountForm;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 企业或集团外常用账户信息表-抬头Mapper
 */
@Mapper
public interface ExtAccountFormMapper {
    /**
     * 插入表单抬头
     * @param form 表单对象
     * @return 影响行数
     */
    int insert(ExtAccountForm form);

    /**
     * 根据formId查询表单抬头
     * @param formId 表单ID
     * @return 表单对象
     */
    ExtAccountForm selectByFormId(@Param("formId") String formId);

    /**
     * 根据formId更新表单抬头
     * @param form 表单对象
     * @return 影响行数
     */
    int updateByFormId(ExtAccountForm form);

    /**
     * 根据formId删除表单抬头
     * @param formId 表单ID
     * @return 影响行数
     */
    int deleteByFormId(@Param("formId") String formId);

    /**
     * 分页查询表单列表
     * @param companyName 企业名称(模糊查询)
     * @param mainApplyingAccount 主申请账号(模糊查询)
     * @param contactPhone 联系电话(模糊查询)
     * @param offset 偏移量
     * @param limit 每页数量
     * @return 表单列表
     */
    List<ExtAccountForm> selectPageList(@Param("companyName") String companyName,
                                        @Param("mainApplyingAccount") String mainApplyingAccount,
                                        @Param("contactPhone") String contactPhone,
                                        @Param("offset") Integer offset,
                                        @Param("limit") Integer limit);

    /**
     * 查询总数
     * @param companyName 企业名称(模糊查询)
     * @param mainApplyingAccount 主申请账号(模糊查询)
     * @param contactPhone 联系电话(模糊查询)
     * @return 总数
     */
    int selectCount(@Param("companyName") String companyName,
                    @Param("mainApplyingAccount") String mainApplyingAccount,
                    @Param("contactPhone") String contactPhone);
}